package com.droidcar;

import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class ContatoBD{
	
	private Integer HTC_CODIGO 	 = 0;
	private Integer CON_CODIGO	 = 0;
	private Integer VCL_CODIGO 	 = 0;
	private String  HTC_NOME 	 = "";
	private String  HTC_MENSAGEM = "";
	private String  HTC_FONE 	 = "";
	private String  HTC_EMAIL 	 = "";
	
	private final String NOME_TABELA = "CONTATO";

	private SQLiteDatabase objDados;

	public ContatoBD(SQLiteDatabase pObjDados){
		objDados = pObjDados;
	}	
	
	
	public Boolean CREATE_TABLE(Boolean pIf_exists) {
		String pSql = "CREATE TABLE ";

		if (pIf_exists)
			pSql += " IF NOT EXISTS ";

		pSql += NOME_TABELA + " (" + "HTC_CODIGO 			INTEGER PRIMARY KEY, "
								   + "CON_CODIGO          	INTEGER," 
								   + "VCL_CODIGO     		INTEGER,"
								   + "HTC_NOME				VARCHAR(120),"
								   + "HTC_MENSAGEM			VARCHAR(255),"
								   + "HTC_FONE				VARCHAR(20),"
								   + "HTC_EMAIL				VARCHAR(60) )";
		objDados.execSQL(pSql);
		return true;
	}

	public void DROP_TABELA() {
		objDados.execSQL("DROP TABLE IF EXISTS " + NOME_TABELA);
	}
	
	public int GetProxChave(){
		Cursor cursor = objDados.query(NOME_TABELA, new String[] { "MAX(HTC_CODIGO) AS HTC_CODIGO " }, null, null, null, null, null);
		if((cursor != null) && (!cursor.isClosed())){
			cursor.moveToFirst();
			return cursor.getInt(0) + 1;
		}else
			return 1;
	}

	public void INSERT() {
		ContentValues biblioteca = new ContentValues();
		if (HTC_CODIGO > 0)
			biblioteca.put("HTC_CODIGO", HTC_CODIGO);
		else
			biblioteca.put("HTC_CODIGO", GetProxChave());
		biblioteca.put("CON_CODIGO", CON_CODIGO);
		biblioteca.put("VCL_CODIGO", VCL_CODIGO);
		biblioteca.put("HTC_NOME", HTC_NOME);
		biblioteca.put("HTC_MENSAGEM", HTC_MENSAGEM);
		biblioteca.put("HTC_FONE", HTC_FONE);
		biblioteca.put("HTC_EMAIL", HTC_EMAIL);		
		objDados.insert(NOME_TABELA, null, biblioteca);
	}

	public List<ContatoBD> SELECT(String pCondicao) {
		List<ContatoBD> list = new ArrayList<ContatoBD>();
		Cursor cursor = objDados.query(NOME_TABELA, new String[] {  "HTC_CODIGO", "CON_CODIGO", 
																	"VCL_CODIGO", "HTC_NOME", 
																	"HTC_MENSAGEM", "HTC_FONE", 
																	"HTC_EMAIL" }, pCondicao, null, null, null, null);
		if (cursor.moveToFirst()) {
			do {
				ContatoBD objCad = new ContatoBD(objDados);
				objCad.HTC_CODIGO 	= cursor.getInt(0);
				objCad.CON_CODIGO 	= cursor.getInt(1);
				objCad.VCL_CODIGO 	= cursor.getInt(2);
				objCad.HTC_NOME 	= cursor.getString(3);
				objCad.HTC_MENSAGEM = cursor.getString(4);
				objCad.HTC_FONE 	= cursor.getString(5);
				objCad.HTC_EMAIL	= cursor.getString(6);
				list.add(objCad);

			} while (cursor.moveToNext());
		}
		if (cursor != null && !cursor.isClosed()) {
			cursor.close();
		}
		return list;
	}

	public Cursor SELECT_NVG(String pCondicao) {
		Cursor cursor = objDados.query(NOME_TABELA, new String[] {  "HTC_CODIGO", "CON_CODIGO", 
																	"VCL_CODIGO", "HTC_NOME", 
																	"HTC_MENSAGEM", "HTC_FONE", 
																	"HTC_EMAIL" }, pCondicao, null, null, null, null);

		return cursor;
	}

	public Integer getHTC_CODIGO() {
		return HTC_CODIGO;
	}


	public void setHTC_CODIGO(Integer hTC_CODIGO) {
		HTC_CODIGO = hTC_CODIGO;
	}


	public Integer getCON_CODIGO() {
		return CON_CODIGO;
	}


	public void setCON_CODIGO(Integer cON_CODIGO) {
		CON_CODIGO = cON_CODIGO;
	}


	public Integer getVCL_CODIGO() {
		return VCL_CODIGO;
	}


	public void setVCL_CODIGO(Integer vCL_CODIGO) {
		VCL_CODIGO = vCL_CODIGO;
	}


	public String getHTC_NOME() {
		return HTC_NOME;
	}


	public void setHTC_NOME(String hTC_NOME) {
		HTC_NOME = hTC_NOME;
	}


	public String getHTC_MENSAGEM() {
		return HTC_MENSAGEM;
	}


	public void setHTC_MENSAGEM(String hTC_MENSAGEM) {
		HTC_MENSAGEM = hTC_MENSAGEM;
	}


	public String getHTC_FONE() {
		return HTC_FONE;
	}


	public void setHTC_FONE(String hTC_FONE) {
		HTC_FONE = hTC_FONE;
	}


	public String getHTC_EMAIL() {
		return HTC_EMAIL;
	}


	public void setHTC_EMAIL(String hTC_EMAIL) {
		HTC_EMAIL = hTC_EMAIL;
	}
	
	public ArrayList<ContatosBD> retornaListaContatos(){
		
		ArrayList<ContatosBD> listaContatos = new ArrayList<ContatosBD>();
		
		FavoritosDB veiculo	= new FavoritosDB(objDados);
		
		List<ContatoBD> lista = SELECT("");
		for( int i = 0; i < lista.size(); i++){
			
			 
			ContatosBD contato = new ContatosBD();
			contato.setHTC_CODIGO(lista.get(i).getHTC_CODIGO());
			contato.setCON_CODIGO(lista.get(i).getCON_CODIGO());
			contato.setHTC_EMAIL(lista.get(i).getHTC_EMAIL());
			contato.setHTC_FONE(lista.get(i).getHTC_FONE());
			contato.setHTC_MENSAGEM(lista.get(i).getHTC_MENSAGEM());
			contato.setHTC_NOME(lista.get(i).getHTC_NOME());
			contato.setVCL_CODIGO(lista.get(i).getVCL_CODIGO());
			contato.setVEICULO(veiculo.retornaVeiculo("VCL_CODIGO = "+lista.get(i).getVCL_CODIGO()));
		
			listaContatos.add(contato);
			
		}
		
		return listaContatos;
		
	}


}
